import PyInstaller.__main__
import os

# 打包配置
app_name = "液冷机通信控制软件"
main_script = "main.py"
icon_path = "favicon.ico"  # 图标文件路径（相对于 build.py）

# 检查关键文件是否存在
if not os.path.exists(main_script):
    raise FileNotFoundError(f"主脚本文件未找到: {main_script}")
if not os.path.exists(icon_path):
    raise FileNotFoundError(f"图标文件未找到: {icon_path}")

# 构建PyInstaller参数
params = [
    main_script,
    '--name', app_name,
    '--windowed',       # 无控制台窗口
    '--onefile',        # 打包成单个exe
    '--clean',          # 清理临时文件
    '--noconfirm',      # 不询问覆盖
    # 添加数据文件 (源路径;目标路径)
    '--add-data', f'config.json{os.pathsep}.',  # 注意：Windows用 ; 分隔
    '--add-data', f'protocol_configs{os.pathsep}protocol_configs',
    '--add-data', f'{icon_path}{os.pathsep}.', # 添加图标到打包资源
    '--icon', icon_path  # 设置exe文件图标
]

# 执行打包
print("开始打包...")
PyInstaller.__main__.run(params)
print("打包完成！")